package com.example.demo.alibaba;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.GetObjectRequest;
import com.baidu.aip.util.Base64Util;
import org.springframework.util.Base64Utils;

import java.io.File;
import java.nio.charset.StandardCharsets;

public class OssTest {

    public static String AccessKeyId = "";
    public static String secret = "";

    public static void Oss(){
        // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1（杭州）为例，Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
        String endpoint = "https://oss-cn-shenzhen.aliyuncs.com";
        // 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
        String accessKeyId = AccessKeyId;
        String accessKeySecret = secret;
        // 填写Bucket名称。
        String bucketName = "wxg-blog";
        // 填写Object完整路径。Object完整路径中不能包含Bucket名称。
        String objectName = "pic/QQ图片20201209234847.jpg";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 使用自定义样式处理图片。
        // yourCustomStyleName填写通过OSS管理控制台创建的图片样式名称。
        String sign = "void";
        String signStr = Base64Utils.encodeToString(sign.getBytes(StandardCharsets.UTF_8)).replaceAll("/+", "-").replaceAll("/", "_");
        String style = "image/watermark,text_"+signStr+",color_FFFFFF,size_150,rotate_315,fill_1,t_50";
        GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
        request.setProcess(style);
        // 将处理后的图片命名为example-new.jpg并保存到本地。
        // 填写本地文件的完整路径。如果指定的本地文件存在会覆盖，不存在则新建。
        // 如果未指定本地路径，则文件默认保存到示例程序所属项目对应本地路径中。
        ossClient.getObject(request, new File("G:\\example-new.png"));

        // 关闭OSSClient。
        ossClient.shutdown();
    }

    public static void main(String[] args) {
        Oss();
    }
}
